package com.gscitysfy.cus.drain.modules.command.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gscitysfy.cus.drain.modules.command.dto.SchemeManageAuditDto;
import com.gscitysfy.cus.drain.modules.command.dto.SchemeManageDto;
import com.gscitysfy.cus.drain.modules.command.entity.SchemeManage;
import com.gscitysfy.cus.drain.modules.command.vo.SchemeManageQuery;
import com.gscitysfy.cus.drain.modules.inspection.vo.DrainInspectionMnProblemVo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 调度方案管理 服务类
 * </p>
 *
 * @author Administrator
 * @since 2022-10-20 18:58:46
 */
public interface ISchemeManageService extends IService<SchemeManage> {

    /**
     * 条件分页
     *
     * @param page
     * @param query
     * @return
     */
    IPage<SchemeManageDto> fetchPage(Page page, SchemeManageQuery query);

    /**
     * 新增或修改
     *
     * @param dto
     * @return
     */
    Boolean saveOrUpdate(SchemeManageDto dto);


    /**
     * 修改调度方案车辆
     *
     * @param dto
     * @return
     */
    Boolean saveSchemeCar(SchemeManageDto dto);

    /**
     * 修改调度方案队伍
     *
     * @param dto
     * @return
     */
    Boolean saveSchemeTeam(SchemeManageDto dto);
    /**
     * 删除
     *
     * @param idList
     * @return
     */
    Boolean delete(List<Long> idList);

    /**
     * 启用
     *
     * @param cmKid
     * @return
     */
    Boolean enable(Long cmKid);

    /**
     * 审核
     *
     * @param dto
     * @return
     */
    Boolean audit(SchemeManageAuditDto dto);


    void exportSchemeFile(HttpServletResponse response, SchemeManageDto dto) throws IOException;

}
